package ToDoItemDemo;

import java.time.LocalDateTime;
import java.util.*;

public class TodoItemList {
    List<TodoItem> todoItems = new ArrayList<>();
    //添加待办事项
    public void addTodoItem(TodoItem todoItem){
        todoItems.add(todoItem);
    }

    //根据待办事项优先级和截止日期排序
    public void printByPriorityAndDeadLine(){
        TodoItem[] t =this.todoItems.toArray(new TodoItem[this.todoItems.size()]);
        Arrays.sort(t,(t1,t2)->{
            //先根据优先级排序
            int v1 = t1.getPriority().value;
            int v2 = t2.getPriority().value;
            if(v2 > v1){
                return 1;
            }
            if (v2 < v1) {
                return -1;
            }
            //再按照截止时间排序从低到高
            return t1.getDeadline().compareTo(t2.getDeadline());
        });
        System.out.println("当前日期时间"+ LocalDateTime.now());
        for (TodoItem todoItem : t) {
            System.out.println(todoItem);
        }
    }

    //删除待办事项中包含指定名称的事项
    public void deleteByName(String name){
        Iterator<TodoItem> iterator = todoItems.iterator();
        while (iterator.hasNext()) {
            TodoItem item = iterator.next();
            if (item.getName().contains(item.getName())) {
                iterator.remove();
            }
        }
    }

    //打印所有待办事项
    public void printAll(){
        for (TodoItem todoItem : todoItems) {
            System.out.println(todoItem);
        }
    }
}
